package com.jyw.system.service.impl;

import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson2.JSONObject;
import com.jyw.common.utils.DateUtils;
import com.jyw.system.domain.SysConfig;
import com.jyw.system.domain.vo.SysOrderEvaluateConfigVo;
import com.jyw.system.enums.OtherConfigEnum;
import com.jyw.system.service.ISysConfigService;
import com.jyw.system.service.ISysOrderEvaluateConfigService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

/**
 * @author Created by ZhangCheng on 2023/08/16 (系统工单评价配置)
 */
@Service
public class SysOrderEvaluateConfigServiceImpl implements ISysOrderEvaluateConfigService {

    @Resource
    private ISysConfigService sysConfigService;

    @Override
    public SysOrderEvaluateConfigVo getConfig() {
        SysConfig sysConfig = sysConfigService.findConfigByKey(OtherConfigEnum.ORDER_EVALUATE.getKey());
        if (sysConfig != null && StrUtil.isNotEmpty(sysConfig.getConfigValue())) {
            return JSONObject.parseObject(sysConfig.getConfigValue(), SysOrderEvaluateConfigVo.class);
        }
        return null;
    }

    @Override
    public SysOrderEvaluateConfigVo getDefaultConfig() {
        SysOrderEvaluateConfigVo configVo=getConfig();
        if(configVo!=null){
            return configVo;
        }
        return new SysOrderEvaluateConfigVo();
    }

    @Override
    public void updateConfig(SysOrderEvaluateConfigVo sysOrderEvaluateConfigVo) {
        SysConfig sysConfig = sysConfigService.findConfigByKey(OtherConfigEnum.ORDER_EVALUATE.getKey());
        String configValue = JSONObject.toJSONString(sysOrderEvaluateConfigVo);
        if (sysConfig != null) {
            sysConfig.setConfigValue(configValue);
            sysConfig.setUpdateTime(DateUtils.getNowDate());
            sysConfigService.updateConfig(sysConfig);
        } else {
            sysConfigService.initConfig(configValue,OtherConfigEnum.ORDER_EVALUATE);
        }
    }

}
